检验信息的完整性的方式有什么
检验信息的完整性的方式如下:
最简单的校验:最简单的校验就是把原始信息和待比较信息直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。例如:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。
奇偶校验:在信息存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。例如:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。
BCC异或校验法:很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。
LRC纵向冗余校验:将ASCII码帧中的头和尾去掉,将串中的每个字节变成16进制相加,再讲结果取反加1(补码),就是VRC(vertical redundant code,垂直冗余码)了。
CRC循环冗余校验:它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明信息通讯出现错误。
MD5、SHA、MAC等摘要算法:摘要算法用于信息量比较大的场合。它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为.md5或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV类似的方法来检查文件完整性,绝大多数大型软件公司或开源组织都是以这种方式来校验信息完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。